#include <iostream>
class Free {
public:
    int car;       // 小客车车辆数
    double carfee; // 小客车收费小计
    int truck;     // 卡车车辆数
    double truckfee; // 卡车收费小计
    int bus;       // 公汽车辆数
    double busfee; // 公汽收费小计

    // 构造函数，初始化车辆数和收费小计
    Free() : car(0), carfee(0.0), truck(0), truckfee(0.0), bus(0), busfee(0.0) {}

    // 统计小客车的车辆数和收费小计
    void cars(int count, double feePerCar) {
        car = count;
        carfee = count * feePerCar;
    }

    // 统计卡车的车辆数和收费小计
    void trucks(int count, double feePerTruck) {
        truck = count;
        truckfee = count * feePerTruck;
    }

    // 统计公汽的车辆数和收费小计
    void buss(int count, double feePerBus) {
        bus = count;
        busfee = count * feePerBus;
    }

    // 收费处理
    void process() {
        // 这里可以添加更多的处理逻辑，比如根据时间、优惠政策等进行计算
    }

    // 输出收费统计信息
    void display() {
        std::cout << "小客车车辆数: " << car << ", 收费小计: " << carfee << std::endl;
        std::cout << "卡车车辆数: " << truck << ", 收费小计: " << truckfee << std::endl;
        std::cout << "公汽车辆数: " << bus << ", 收费小计: " << busfee << std::endl;
        std::cout << "总收费金额: " << carfee + truckfee + busfee << std::endl;
    }
};

int main() {
    // 创建Free对象
    Free toll;

    // 假设的收费标准和车辆数
    const double feePerCar = 10.0; // 小客车每辆收费
    const double feePerTruck = 20.0; // 卡车每辆收费
    const double feePerBus = 30.0; // 公汽每辆收费

    // 输入车辆数和收费
    int carCount, truckCount, busCount;
    std::cout << "请输入小客车数量: ";
    std::cin >> carCount;
    toll.cars(carCount, feePerCar);

    std::cout << "请输入卡车数量: ";
    std::cin >> truckCount;
    toll.trucks(truckCount, feePerTruck);

    std::cout << "请输入公汽数量: ";
    std::cin >> busCount;
    toll.buss(busCount, feePerBus);

    // 进行收费处理
    toll.process();

    // 显示收费统计信息
    toll.display();

    return 0;
}